package com.huabo.contract.oracle.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Transient;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * <p>
 * 
 * </p>
 *
 * @author huabo
 * @since 2021-10-23
 */
@Data
  @EqualsAndHashCode(callSuper = false)
    @TableName("TBL_CYHW_PROJECTBUDGET")
@ApiModel(value="TblCyhwProjectbudget对象", description="")
public class TblCyhwProjectbudget implements Serializable {
//相对方预警
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY,generator = "select CYHWBUDGET_SEQUENCE.nextval from dual")  
    @TableId("BUDGETID")
    @ApiModelProperty(value = "相对方主键")
    private Integer budgetid;

    @TableField("BUDGETNAME")
    @ApiModelProperty(value = "相对方名称")//付款单位
    private String budgetname;

    @TableField("TOTALTMONEY")
    @ApiModelProperty(value = "注册资本")
    private String totaltmoney;

    @TableField("FINANCEMONEY")
    @ApiModelProperty(value = "所属行业")
    private String financemoney;

    @TableField("OTHERMONEY")
    @ApiModelProperty(value = "第三方编号")
    private String othermoney;

    @TableField("GOODSTYPE")
    @ApiModelProperty(value = "货物类外键")
    private Integer goodstype;

    @TableField("SERVICETYPE")
    @ApiModelProperty(value = "服务类 内外部")
    private String servicetype;

    @TableField("PROJECTTYPE")
    @ApiModelProperty(value = "相对方性质")
    private String projecttype;

    @TableField("ORTHERTYPE")
    @ApiModelProperty(value = "相对方类型")
    private String orthertype;

    @TableField("ISGOVERNMENT")
    @ApiModelProperty(value = "是否是政府采购 1是 2否")
    private Integer isgovernment;

    @TableField("ISDIRECT")
    @ApiModelProperty(value = "是否是直接支付1是 2否")
    private Integer isdirect;

    @TableField("ITEMBUDGETTYPE")
    @ApiModelProperty(value = "支出项目类别 1.经常性 2.一次性")
    private Integer itembudgettype;

    @TableField("PROJECTEASON")
    @ApiModelProperty(value = "统一社会信用代码")
    private String projecteason;

    @TableField("PROJECTGOAL")
    @ApiModelProperty(value = "项目总体目标 自编号")
    private String projectgoal;

    @TableField("PROJECTSTAGEGOAL")
    @ApiModelProperty(value = "法定代表人姓名")
    private String projectstagegoal;

    @TableField("PROJECTCONDITION")
    @ApiModelProperty(value = "法定代表人身份证")
    private String projectcondition;

    @TableField("PROJECTRISK")
    @ApiModelProperty(value = "证件类型")
    private String projectrisk;

    @TableField("ORGID")
    @ApiModelProperty(value = "隶属组织")
    private BigDecimal orgid;

    
    @TableField("CREATEUSER")
    @ApiModelProperty(value = "创建用户")
    private BigDecimal createuser;

    @TableField("CREATETIME")
    @ApiModelProperty(value = "创建时间")
    @JSONField(format = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date createtime;

    @TableField("FLOWID")
    @ApiModelProperty(value = "隶属流程Id Tbl_Flow")
    private BigDecimal flowid;

    @TableField("LINKDEPR")
    @ApiModelProperty(value = "关联部门")
    private Integer linkdepr;

    @TableField("REPORTTODEPT")
    @ApiModelProperty(value = "报送单位部门")
    private Integer reporttodept;

    @TableField("INSPECTIONSTATUS")
    @ApiModelProperty(value = "审批状态  1-审批中、2-需调整、3-已通过、4-已终止、5-已跟踪、6-已完成、else-未审批 ")
    private Integer inspectionstatus;

    @TableField("GOODSPRICE")
    @ApiModelProperty(value = "货物单价")
    private BigDecimal goodsprice;

    @TableField("GOODSAMOUNT")
    @ApiModelProperty(value = "货物数量")
    private BigDecimal goodsamount;

    @TableField("GOODSMODEL")
    @ApiModelProperty(value = "货物型号")
    private String goodsmodel;

    @TableField("COUNTERPARTNO")
    @ApiModelProperty(value = "相对方编号")
    private String counterpartno;//合同相对方

    @TableField("COUNTERPARTADDRESS")
    @ApiModelProperty(value = "相对方地址")
    private String counterpartaddress;

    @TableField("COUNTERPARTCODE")
    @ApiModelProperty(value = "邮编")
    private String counterpartcode;

    @TableField("COUNTERPARTHANK")
    @ApiModelProperty(value = "开户银行")
    private String counterparthank;

    @TableField("COUNTERPARTHANKACCOUNT")
    @ApiModelProperty(value = "开户银行账号")
    private String counterparthankaccount;

    @TableField("COUNTERPARTNETADDRESS")
    @ApiModelProperty(value = "网址")
    private String counterpartnetaddress;

    @TableField("COUNTERPARTPHONE")
    @ApiModelProperty(value = "相对方电话")
    private String counterpartphone;

    @TableField("RECORDTYPE")
    @ApiModelProperty(value = "类型")
    private String recordtype;

    @TableField("RECORDPARENT")
    @ApiModelProperty(value = "该记录的父级")
    private Integer recordparent;

    
    @TableField("RECORDCONCAT")
    @ApiModelProperty(value = "关联的相对方信息")
    private Integer recordconcat;

    @TableField("ACTION")
    @ApiModelProperty(value = "地址")
    private String action;

    @TableField("EQBFLOWID")
    @ApiModelProperty(value = "e签宝流程Id")
    private String eqbflowid;

    @TableField("BIZNO")
    private String bizno;

    @TableField("RESULTDESCRIPTION")
    @ApiModelProperty(value = "纳税人识别号")
    private String resultdescription;

    @TableField("EQBSTATUS")
    private Integer eqbstatus;

    @TableField("FLOWTYPE")
    private String flowtype;

    @TableField("EABFILECK")
    @ApiModelProperty(value = "附件查看地址")
    private String eabfileck;

    @TableField("FILEURL")
    @ApiModelProperty(value = "附件下载地址")
    private String fileurl;

    @TableField("OPPOSITENATURE")
    @ApiModelProperty(value = "相对方性质")
    private String oppositenature;

    @TableField("COUNTERPARTTYPE")
    @ApiModelProperty(value = "相对方类型")
    private String counterparttype;

    @TableField("ISEFFECT")
    @ApiModelProperty(value = "是否有效")
    private String iseffect;

    @TableField("COUNTERPARTDESC")
    @ApiModelProperty(value = "相对方简介")
    private String counterpartdesc;

    @TableField("SAFEORG")
    @ApiModelProperty(value = "保管部门")
    private Integer safeorg;

    @TableField("SAFESTAFF")
    @ApiModelProperty(value = "保管员")
    private Integer safestaff;

    @TableField("EFFECTDATE")
    @ApiModelProperty(value = "档案有效期、黑明单有效期")
    @JSONField(format = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date effectdate;

    @TableField("SAFEDATE")
    @ApiModelProperty(value = "归档日期")
    @JSONField(format = "yyyy-MM-dd")
    private Date safedate;

      @ApiModelProperty(value = "负责人")
      @TableField("DIRECTOR")
    private String director;

      @ApiModelProperty(value = "联系人")
      @TableField("CONTACTS")
    private String contacts;

      @ApiModelProperty(value = "联系人电话")
      @TableField("CONTACTSPHONE")
    private String contactsphone;

      @ApiModelProperty(value = "联系地址")
      @TableField("CONTACTSADRESS")
    private String contactsadress;

      @ApiModelProperty(value = "电子邮箱")
      @TableField("CONTACTSEMAIL")
    private String contactsemail;

      @ApiModelProperty(value = "岗位")
      @TableField("STATION")
    private String station;

      @ApiModelProperty(value = "称呼")
      @TableField("CALLNAME")
    private String callname;

      @ApiModelProperty(value = "备注")
      @TableField("REMARKS")
    private String remarks;
      
    @TableField("ISBLACK")
    @ApiModelProperty(value = "是否加入黑名单 1是 2否")
    private Integer isblack;

    @TableField("BLACKTYPE")//黑名单期限
    @ApiModelProperty(value = "黑名单类型   1 短期   2长期")
    private Integer blacktype;

    @TableField("PSTARTDATE")
    @ApiModelProperty(value = "证件有效期")
    @JSONField(format = "yyyy-MM-dd")
    private Date pstartdate;

    @TableField("PENDDATE")
    @ApiModelProperty(value = "证件有效期")
    @JSONField(format = "yyyy-MM-dd")
    private Date penddate;

    @TableField("CRETIFICATENO")
    @ApiModelProperty(value = "证件编号")
    private String cretificateno;


    @Transient
    @ApiModelProperty(value = "相对方签署的合同数量")
    private Integer unitCount;
    
    @Transient
    @ApiModelProperty(value = "相对方违约合同连接段的数量")
    private Integer performanceCount;
    
    @Transient
    @ApiModelProperty(value = "隶属组织")
    private TblOrganization linkOrg;
    @Transient
    @ApiModelProperty(value = "创建用户")
    private TblStaff createStaff;
    @Transient
    @ApiModelProperty(value = "隶属流程")
    private TblFlow tblFlow;
//    @Transient
//    @ApiModelProperty(value = "关联部门")
//    private TblOrganization relaDept;
//    @Transient
//    @ApiModelProperty(value = "报送科室")
//    private TblOrganization reportDept;
    @Transient
    @ApiModelProperty(value = "关联合同")
    private TblCyhwUnit recordUnit;
    @Transient
    @ApiModelProperty(value = "父级信息")
    private TblCyhwProjectbudget parentBudget;
    @Transient
    @ApiModelProperty(value = "隶属流程")
    private TblFlow flowInfo;
//    @Transient
//    @TableField("附件列表")
//    private List<TblAttachment> attList = new ArrayList(0);
    @Transient
    @TableField("银行列表")
    private List<TblCounterpartBankinfo> bankInfoList = new ArrayList(0);
    @Transient
    private String realname;//真实名字
    @Transient///contract/counterpartManageList银行列表
    private BigDecimal bankid;
    @TableField("OUTSIDEID")
    @ApiModelProperty(value = "外部来源主键")
	private String outsideId;//外部来源主键
}
